Crate hex_conservative

source ·
Expand description

Hex encoding and decoding.

General purpose hex encoding/decoding library with a conservative MSRV and dependency policy.

§Basic Usage

// In your manifest use the `package` key to improve import ergonomics.
// hex = { package = "hex-conservative", version = "*" }
use hex::prelude::*;

// Decode an arbitrary length hex string into a vector.
let v = Vec::from_hex("deadbeef").expect("valid hex digits");
// Or a known length hex string into a fixed size array.
let a = <[u8; 4]>::from_hex("deadbeef").expect("valid length and valid hex digits");

// We support `LowerHex` and `UpperHex` out of the box for `[u8]` slices.
println!("An array as lower hex: {:x}", a.as_hex());
// And for vecs since `Vec` derefs to byte slice.
println!("A vector as upper hex: {:X}", v.as_hex());

// Allocate a new string (also `to_upper_hex_string`).
let s = v.to_lower_hex_string();

// Please note, mixed case strings will still parse successfully but we only
// support displaying hex in a single case.
assert_eq!(
    Vec::from_hex("dEaDbEeF").expect("valid mixed case hex digits"),
    Vec::from_hex("deadbeef").expect("valid hex digits"),
);

Modules§

  • Implements a buffered encoder.
  • Helpers for displaying bytes as hex strings.
  • Error code for the hex-conservative crate.
  • Hex encoding and decoding.
  • Re-exports of the common crate traits.
  • serdeserde
    Hex encoding with serde.

Macros§

Structs§

Enums§

Traits§

  • Extension trait for types that can be displayed as hex.
  • Trait for objects that can be deserialized from hex strings.

Type Aliases§